From 4651c5a95e9cc6980bb1bec9d603977a0853309e Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Tue, 30 Aug 2005 16:44:05 +0000 Subject: [PATCH] Fix x86/64 Xen register and stack dumps so they don't wrap on an 80-column display. Signed-off-by: Jan Beulich --- xen/arch/x86/traps.c | 9 +++++---- xen/arch/x86/x86_64/traps.c | 23 +++++++++++++---------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index af33455ca2..107485a5d9 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -100,6 +100,7 @@ unsigned long do_get_debugreg(int reg); static int debug_stack_lines = 20; integer_param("debug_stack_lines", debug_stack_lines); +#define stack_words_per_line (32 / BYTES_PER_LONG) int is_kernel_text(unsigned long addr) { @@ -125,7 +126,7 @@ void show_guest_stack(void) printk("Guest stack trace from "__OP"sp=%p:\n ", stack); - for ( i = 0; i < (debug_stack_lines*8); i++ ) + for ( i = 0; i < (debug_stack_lines*stack_words_per_line); i++ ) { if ( ((long)stack & (STACK_SIZE-1)) == 0 ) break; @@ -137,7 +138,7 @@ void show_guest_stack(void) i = 1; break; } - if ( (i != 0) && ((i % 8) == 0) ) + if ( (i != 0) && ((i % stack_words_per_line) == 0) ) printk("\n "); printk("%p ", _p(addr)); stack++; @@ -176,11 +177,11 @@ void show_stack(unsigned long *esp) printk("Xen stack trace from "__OP"sp=%p:\n ", stack); - for ( i = 0; i < (debug_stack_lines*8); i++ ) + for ( i = 0; i < (debug_stack_lines*stack_words_per_line); i++ ) { if ( ((long)stack & (STACK_SIZE-1)) == 0 ) break; - if ( (i != 0) && ((i % 8) == 0) ) + if ( (i != 0) && ((i % stack_words_per_line) == 0) ) printk("\n "); addr = *stack++; printk("%p ", _p(addr)); diff --git a/xen/arch/x86/x86_64/traps.c b/xen/arch/x86/x86_64/traps.c index c1b498270d..5e9701a1f6 100644 --- a/xen/arch/x86/x86_64/traps.c +++ b/xen/arch/x86/x86_64/traps.c @@ -15,19 +15,22 @@ void show_registers(struct cpu_user_regs *regs) { - printk("CPU: %d\nEIP: %04x:[<%016lx>]", + printk("CPU: %d\nRIP: %04x:[<%016lx>]", smp_processor_id(), 0xffff & regs->cs, regs->rip); if ( !GUEST_MODE(regs) ) print_symbol(" %s", regs->rip); - printk("\nEFLAGS: %016lx\n", regs->eflags); - printk("rax: %016lx rbx: %016lx rcx: %016lx rdx: %016lx\n", - regs->rax, regs->rbx, regs->rcx, regs->rdx); - printk("rsi: %016lx rdi: %016lx rbp: %016lx rsp: %016lx\n", - regs->rsi, regs->rdi, regs->rbp, regs->rsp); - printk("r8: %016lx r9: %016lx r10: %016lx r11: %016lx\n", - regs->r8, regs->r9, regs->r10, regs->r11); - printk("r12: %016lx r13: %016lx r14: %016lx r15: %016lx\n", - regs->r12, regs->r13, regs->r14, regs->r15); + printk("\nRFLAGS: %016lx\n", regs->eflags); + printk("rax: %016lx rbx: %016lx rcx: %016lx\n", + regs->rax, regs->rbx, regs->rcx); + printk("rdx: %016lx rsi: %016lx rdi: %016lx\n", + regs->rdx, regs->rsi, regs->rdi); + printk("rbp: %016lx rsp: %016lx r8: %016lx\n", + regs->rbp, regs->rsp, regs->r8); + printk("r9: %016lx r10: %016lx r11: %016lx\n", + regs->r9, regs->r10, regs->r11); + printk("r12: %016lx r13: %016lx r14: %016lx\n", + regs->r12, regs->r13, regs->r14); + printk("r15: %016lx\n", regs->r15); if ( GUEST_MODE(regs) ) show_guest_stack(); -- 2.30.2